Distributed computing is a type of parallel or segmented computing in which a processing task is distributed among multiple processors in an effort to complete the task more quickly and efficiently. For example, a computer program may be split up into multiple parts, each part distributed to a different computer or processor for simultaneous execution, and the executed parts recombined to provide the complete, executed program. In this way, the program may be executed in a fraction of the time it would have taken had the entire program been executed by a single processor.
Distributed systems generally rely on some central control for task management or prior knowledge of service composition (i.e., which processor is capable of executing which part of the task). In an architecture in which the control of tasks is more distributed, it is more difficult to identify the different parts the make up the completed task because there may be several independent processors involved that are not aware of the complete task to which they are contributing.
Thus, there is a need for a way to manage a task in a distributed system with modular service architecture in which control functions are distributed as well.